import request from '@/config/axios'

/**
 * 标签分类 Response VO
 */
export interface TagCategoryRespVO {
  /**
   * 分类编号
   */
  id: number
  /**
   * 父分类编号
   */
  parentId: number
  /**
   * 分类名称
   */
  name: string
  /**
   * 分类排序
   */
  sort: number
  /**
   * 创建时间
   */
  createTime: string
}

/**
 * 标签分类 Create Request VO
 */
export interface TagCategoryCreateReqVO {
  /**
   * 父分类编号
   */
  parentId?: number
  /**
   * 分类名称
   */
  name: string
  /**
   * 分类排序
   */
  sort: number
}

/**
 * 标签分类 Update Request VO
 */
export interface TagCategoryUpdateReqVO extends TagCategoryCreateReqVO {
  /**
   * 分类编号
   */
  id: number
}

/**
 * 标签分类列表查询参数
 */
export interface TagCategoryListReqVO {
  /**
   * 分类名称
   */
  name?: string
}

// 获得标签分类列表
export const getTagCategoryList = (params: TagCategoryListReqVO) => {
  return request.get<TagCategoryRespVO[]>({ url: '/system/tag-category/list', params })
}

// 获得标签分类详情
export const getTagCategory = (id: number) => {
  return request.get<TagCategoryRespVO>({ url: `/system/tag-category/get?id=${id}` })
}

// 新增标签分类
export const createTagCategory = (data: TagCategoryCreateReqVO) => {
  return request.post({ url: '/system/tag-category/create', data })
}

// 修改标签分类
export const updateTagCategory = (data: TagCategoryUpdateReqVO) => {
  return request.put({ url: '/system/tag-category/update', data })
}

// 删除标签分类
export const deleteTagCategory = (id: number) => {
  return request.delete({ url: `/system/tag-category/delete?id=${id}` })
}
